package com.bflow.api;

import com.bflow.api.bo.BflowRunInstanceBo;
import com.bflow.api.bo.BflowRunRecordBo;
import com.bflow.commons.exception.BizException;
import com.bflow.commons.po.BasePo;
import com.bflow.commons.service.IBaseService;

import java.io.Serializable;
import java.util.List;

/**
 * 功能：BflowRunRecord 流程记录-业务接口
 * 作者：haowen
 * 日期：2018-12-13
 */
public interface IBflowRunRecordService<P extends BasePo, B extends Serializable> extends IBaseService<P, B> {

    /**
     * 增加
     * @param bflowRunRecordBo
     * @return
     */
    void add(BflowRunRecordBo bflowRunRecordBo) throws BizException;

    /**
     * 根据 流程ID 获取记录列表
     * @param instanceId
     * @return
     */
    List<BflowRunRecordBo> findListByInstanceId(String instanceId);

    /**
     * 根据 业务信息 获取记录列表
     * @param busiKey
     * @param busiId
     * @param busiSubId
     * @return
     */
    List<BflowRunRecordBo> findListByBsId(String busiKey, String busiId, String busiSubId);

    /**
     *
     *
     *
     *
     * 获取最新一条记录
     * @param instanceId
     * @return
     */
    BflowRunRecordBo getLastRecordByInstanceId(String instanceId);


    /**
     * 获取 完整列表
     * @param instanceBo
     * @param allActArray 所有活动 （不去重）
     * @param allProcessUserIds 所有处理人
     * @param currUserId
     * @return
     */
    List<BflowRunRecordBo> getFullList(BflowRunInstanceBo instanceBo, String[] allActArray, String[] allProcessUserIds, String currUserId);
}
